package com.lonely.order.domain.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.lonely.common.core.domain.BaseEntity;
import com.lonely.goods.enums.GoodsEnum;
import com.lonely.order.enums.OrderSecondProcessEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;


/**
 * @author 黄志标
 * @date 2025-07-02 10:44
 * @Description: 订单二次工艺表
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@TableName("sys_order_second_process")
public class SysOrderSecondProcess extends BaseEntity implements Serializable {

    /**
     * 订单id
     */
    private Long orderId;

    /**
     * 订单部件id
     */
    private Long orderPartId;

    /**
     * 订单编号
     */
    private String produceOrderId;

    /**
     * 部件code
     */
    private String partCode;

    /**
     * 二次工艺名称
     */
    private String processName;

    /**
     * 供应商
     */
    private String supplierName;

    /**
     * 单价
     */
    private String unitPrice;

    /**
     * 用量
     */
    private String simpleUse;

    /**
     * 类型
     *
     * @see GoodsEnum.GoodsSecondProcessTypeEnum
     */
    private Integer type;

    /**
     * 裁片二次工艺
     *
     * @see OrderSecondProcessEnum.CuttingSecondProcessEnum
     */
    private String cuttingSecondProcess;

    /**
     * 发料数量
     */
    private Integer sendMaterialsQuantity;

    /**
     * 回料数量
     */
    private Integer recycledMaterialsQuantity;

    /**
     * 实发工艺厂
     */
    private String actualIssuanceCraftFactory;

    /**
     * 实发价格
     */
    private String actualIssuancePrice;

    /**
     * 发起时间
     */
    private Date initiationTime;

    /**
     * 回料时间
     */
    private Date returnMaterialTime;

    /**
     * 作废时间
     */
    private Date invalidTime;

    /**
     * 回料备注
     */
    private String returnMaterialRemark;

    /**
     * 少数原因
     */
    private String missingQuantityReason;

    /**
     * 状态
     *
     * @see OrderSecondProcessEnum.StatusEnum
     */
    private Integer status;
}
